#ifndef WAVEFRONT_MODEL
#define WAVEFRONT_MODEL
#include <vector>
#include <boost/tuple/tuple.hpp>
namespace wavefront{
typedef boost::tuple<float,float,float> Vertex;
typedef boost::tuple<float,float> TextureCoord;
typedef boost::tuple<float,float,float> Normal;
class Model
{
public:
	Model(){}

	void load(unsigned char* data,int size);

	bool empty()const{return m_vertices.empty();}
	void clear();
	int numVertex()const{return m_vertices.size();}
	int numTriangle()const{return m_vertices.size() / 3;}

	Normal getNormal(int index)const            {return m_normals[index];}
	TextureCoord getTextureCoord(int index)const{return m_textureCoords[index];}
	Vertex getVertex(int index)const            {return m_vertices[index];}
private:
	std::vector<Vertex> m_vertices;
	std::vector<TextureCoord> m_textureCoords;
	std::vector<Normal> m_normals;
};
}//wavefront
#endif